package model;

import java.awt.Font;
import java.io.BufferedReader;
import java.io.FileReader;
import javax.swing.JComponent;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import noname.ConfigSettings;

/**
 * Text implementatie van MultiMedia
 */
public class TextMultiMedia extends MultiMedia {

    public TextMultiMedia(String number) {
        super(number);
    }
    
    /**
     * Geeft een textarea terug in een JscrollPane
     */
    @Override
    public JComponent getView() {
        
        // Lees het text bestand uit
        String txt = getFileContent();
        
        // Maak een text area voor de text
        JTextArea txtArea = new JTextArea(txt, 5, 30);
        txtArea.setLineWrap(true);
        txtArea.setEditable(false);
        txtArea.setFont(new Font("Serif", Font.ITALIC, 16));
        txtArea.setWrapStyleWord(true);
        
        // Voeg de text area toe aan eenscrollpane
        JScrollPane scrollTxtArea = new JScrollPane(txtArea);
        scrollTxtArea.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        
        return scrollTxtArea;
    }
    
    private String getFileContent() {
        
        String path = ConfigSettings.getInstance().getMultimediaTextPath() + number + ".txt";
        FileReader fr;
        StringBuilder txt = new StringBuilder();
        
        try {
            fr = new FileReader(path);
            BufferedReader br = new BufferedReader(fr);

            String line = br.readLine();
            while (line != null) {
                txt.append(line);
                line = br.readLine();
            }
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }
        
        return txt.toString();
    }
    
    @Override
    public String getName() {
        return "Text-" + number;
    }
}
